主題重點:什麼是陣列、如何閱讀 Java 的 API 文件、以及 substring、split 的用法
說明:
1.陣列(Array)
陣列是固定長度、同一種類型元素的集合。宣告時要指定長度,長度不可變。
用來儲存多個相同型別資料,例如 int[], String[] 等。
2.閱讀 Java API 文件
官方文件(Oracle JavaDoc)是最權威的來源,會告訴你某個類別(Class)或物件(物件=instance)有哪些方法(methods)、參數(parameters)、回傳型別(return type)、例外(exceptions)等。
閱讀時注意:方法名稱 + 參數 signature、是否有重載(overloaded)、是否拋出例外、回傳什麼、以及時間複雜度或特殊行為(若文檔有提)。
3.字串的基本操作:substring, split
substring(beginIndex):從 beginIndex 開始到字串尾。
substring(beginIndex, endIndex):從 beginIndex 開始,到 endIndex 前一位(exclusive)。
split(regex):按照正規表達式(regular expression)來分割字串,回傳一個字串陣列(String[])。
split(regex, limit):限制回傳陣列的最大長度;最後一個元素包含剩餘未被分割的部分。
範例:
輸出結果:
補充:進階應用
split 與正規表達式
split 內部使用 正規表達式,所以一些特殊字元要轉義:
範例:
輸出結果:
substring 與效能問題
在 舊版 JDK (6以前),substring 是透過共用原始字串的 char[],會造成 記憶體洩漏風險。
例如:
String big = "abcdefghijklmnopqrstuvwxyz";
String sub = big.substring(10, 15); // "klmno"
舊版會保留整個 big 的陣列。雖然 sub 只用了 5 個字元,但記憶體中仍保留完整 26 個字元。
JDK 7u6 之後已修正 → substring 會複製字元陣列,不再有此問題。
💡 但這也代表 substring 較耗效能(需要複製)。大字串裁切時要注意。
下一篇將介紹-字串常用方法進階比較與應用